32 research outputs found
A Study on Architectural Smells Prediction
Architectural smells can be detrimental to the system maintainability, evolvability and represent a source of architectural debt. Thus, it is very important to be able to understand how they evolved in the past and to predict their future evolution. In this paper, we evaluate if the existence of architectural smells in the past versions of a project can be used to predict their presence in the future. We analyzed four Java projects in 295 Github releases and we applied for the prediction four different supervised learning models in a repeated cross-validation setting. We found that historical architectural smell information can be used to predict the presence of architectural smells in the future. Hence, practitioners should carefully monitor the evolution of architectural smells and take preventative actions to avoid introducing them and stave off their progressive growth.</p
Architecture Smells vs. Concurrency Bugs: an Exploratory Study and Negative Results
Technical debt occurs in many different forms across software artifacts. One
such form is connected to software architectures where debt emerges in the form
of structural anti-patterns across architecture elements, namely, architecture
smells. As defined in the literature, ``Architecture smells are recurrent
architectural decisions that negatively impact internal system quality", thus
increasing technical debt. In this paper, we aim at exploring whether there
exist manifestations of architectural technical debt beyond decreased code or
architectural quality, namely, whether there is a relation between architecture
smells (which primarily reflect structural characteristics) and the occurrence
of concurrency bugs (which primarily manifest at runtime). We study 125
releases of 5 large data-intensive software systems to reveal that (1) several
architecture smells may in fact indicate the presence of concurrency problems
likely to manifest at runtime but (2) smells are not correlated with
concurrency in general -- rather, for specific concurrency bugs they must be
combined with an accompanying articulation of specific project characteristics
such as project distribution. As an example, a cyclic dependency could be
present in the code, but the specific execution-flow could be never executed at
runtime
Strategic foresight in corporate organizations: handling the effect and response uncertainty of technology and social drivers of change
Today many companies in many industries put a lot of efforts into monitoring and investigating emerging drivers of change in their business environment, particularly in relation to new technologies and events in the social, economic, political and ecological landscapes which surround their industry. So far scholars in the literature on foresight and future studies focused on the techniques and practices for analysing the “state” uncertainty about the likely path of evolution of emerging drivers of change. Anyway, less attention was devoted to the “effect” uncertainty about the impact of drivers of change on the competitive position of the firm and to the “response” uncertainty about how to take advantage of these drivers. These are the main issues we take into account, through a field research on firms that, notwithstanding they were able to properly assess the likely evolution (state uncertainty) of relevant drivers of change in their industry, either were successful or dramatically failed in handling the effect and response uncertainty of these drivers. Moreover, we carried out multiple case studies of some large companies that have established an organizational unit dedicated to strategic foresight. Overall, the results of our research may contribute to improve the effectiveness of strategic foresight and to increase its value added to the planning process of corporate firms, while providing helpful insight to public organizations that promote foresight exercises for enhancing the competitiveness of local firms